Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

c18n: Fix various implementation bugs #2072

Closed
wants to merge 4 commits into from
Closed

c18n: Fix various implementation bugs #2072

wants to merge 4 commits into from

Conversation

dpgao
Copy link
Contributor

@dpgao dpgao commented Mar 23, 2024

The brings the major bug fixes to RTLD in the demo branch to dev.

@dpgao dpgao requested a review from jrtc27 March 23, 2024 14:36
Undefined weak symbols are represented by a dummy sym_zero definition in
RTLD. Correctly handle this special case when creating a trampoline.
Non-PLT functions must have a canonical address so that different
libraries see the same address for the same function.

Previously, some but not all non-PLT functions are wrapped in
trampolines, breaking function pointer equality. For example, relative
relocations of function pointers are not wrapped in trampolines at all.

This commit completely disables trampolines for non-PLT relocations
until a complete solution for wrapping all function pointers is
implemented.
This makes functions such as dladdr work even when given a trampoline.
@dpgao
Copy link
Contributor Author

dpgao commented Apr 16, 2024

Superseded by #2012.

@dpgao dpgao closed this Apr 16, 2024
@dpgao dpgao deleted the c18n-nonplt branch April 16, 2024 10:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant